The use of packets or frames of data is an advantageous format for conveying data messages from originating stations or terminals to designated or addressee terminals. Data packets typically comprise a fixed number of data bits. Each packet is constructed to include a packet header portion which contains synchronizing or framing data identifying the start of the packet, address data defining the addressee station and other control data information which may include, for example, indications whether the packet is available to convey the data and/or whether data information has been withdrawn from the packet. The packet is further structured to contain a data portion following the header portion, which data portion accommodates a burst of data (a plurality of data bits) which is destined for the addressee station identified in the header portion.
When a station on a data packet transmission system desires to send a message, it typically arranges the message into a plurality of data bursts, identifies data packets on the transmission line which are available to convey data, inserts the appropriate address information in the header portion of the available packet and inserts a data burst into the data portion. Advantageously, the sending or originating station also inserts appropriate control information in the header, including information that the packet is now occupied (unavailable) and the data burst therein has not yet been withdrawn by the addressee station. This packet is then conveyed over the transmission system to the addressee station which identifies its own address in the header portion and thereupon withdraws the data burst from the data portion, indicating in the header portion that the data is withdrawn and the packet is therefore available for reuse.
Data packet communication systems have been employed in various different types of systems, one system being the ring or loop system described in "Network for Block Switching of Data" by J. R. Pierce, BSTJ 51, No. 6, July-August 1972, pp 1133-1145. In the Pierce arrangement, a transmission line serially passes from one to another of a plurality of stations arranged in a ring or loop configuration. Data packets are passed from station to station, each station monitoring the packet header to determine if the data burst in the packet is destined for that station. Alternatively, if the station has a message to send, it monitors the packet header to determine if the packet is available. Assuming, in this latter case, that the packet is in fact available, the station thereupon overwrites its address and control information into the packet header and overwrites a data burst into the packet data portion. When the packet arrives at the addressee station, the data burst is then withdrawn and the header information is modified to indicate that the packet is reusable.
The information indicating whether the packet is available (empty) or full is typically contained in a single "flag" bit which may, alternatively, preceed or follow the address bits in the packet header. If the protocol requires that the flag bit preceeds the address bits, when the station or terminal monitors the packet header to determine whether the data burst is destined for the station, it must also storage delay the address bits in order to modify the flag bit if the burst is to be withdrawn. If the protocol requires that the flag bit follows the address bits and the station or terminal desires to send a data burst, it delays the passage of the address bits therethrough so that it can overwrite the new address upon determining that the packet is empty. In either case, a station (storage) delays the data passing therethrough for an interval corresponding to the signaling interval of the address bits. If there are a larger number (n) of stations on the loop requiring m bits of data to identify each station, the total cumulative loop delay for address monitoring equals m.times.n bit intervals, which delay may be considered excessive for some data applications.
It is an object of this invention to reduce the (storage) delay required for packet header monitoring.